package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.UserBean;

/**
 * 用户业务接口
 */
public interface IUserService {


    /**
     * 根据用户名动态分页查询用户表
     * @param pageNO   页码
     * @param name    用户名
     * @return    用户分页对象
     */
    public IPage<UserBean> findByItem(Integer pageNO,String name);

    /**
     * 添加用户时，用户名不能重复
     * @param name  用户名
     * @return 用户对象
     */
    public UserBean findByName(String name);

    /**
     * 添加用户
     * @param user     用户对象
     * @param roleIdArray   角色id数组
     */
    public String add(UserBean user,Integer... roleIdArray);

    /**
     * 删除用户同时删除用户拥有的角色信息，如果加一个列为状态，那么就更改状态
     * 先删除中间表该用户的权限，再删除用户
     * @param userId  用户id
     */
    public void del(Integer userId);

    /**
     * 通过id查询用户信息，同时查询该用户拥有的角色集合，和权限集合
     * @param id  用户id
     * @return   用户对象
     */
    public UserBean findById(Integer id);

    /**
     * 通过用户id修改用户的角色，先通过用户id删除中间表相关信息，再添加新的角色信息
     * @param userId 用户id
     * @param newRoleArray 新角色id数组
     */
    public void updateRole(Integer userId,Integer... newRoleArray);

    /**
     * 通过用户id修改密码（当前登录对象）
     * @param userId    登陆用户id
     * @param newPwd    新密码
     */
    public void updatePwd(Integer userId,String newPwd);
}
